home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Tele / N-O / New Feature Files 11.cpt / New Features #2 < prev   
Text File  |  1989-10-10  |  20KB  |  410 lines

  1. New Features In White Knight 11 (file #2 of 2)
  2. ----------------------------------------------
  3.  
  4. This file continues the new features list that began in the first file.
  5.  
  6. Procedure Commands
  7. ------------------
  8. • White Knight 11's Procedure language is upwardly compatible with Red 
  9. Ryder 10.3's.  A few small changes were necessary:
  10.     1) STRIP now turns on/off the text transfer "Use filter" option.
  11.     2) XKSTRIP now turns on the file transfer "Use filter" option.
  12.     3) NOZAP ON now turns on IGNORE parity. NOZAP OFF now switches 
  13.        to NO parity.
  14.     4) FASTDUMP has been eliminated as a Procedure command and has 
  15.        been implemented as an RCMD module (described later).
  16.     5) TIMEDATE now uses the proper International date/time format.
  17.     6) The MENUDOES command now allows up to 68 characters to be 
  18.        entered for each user menu command.
  19.  
  20. • The Procedure RUN command has been rewritten to support MultiFinder 
  21. and the launching of appications outside of the folder in which White 
  22. Knight resides.
  23.  
  24. • The number of string and numeric variables have been increased from 26 
  25. each to 234 of each.
  26.  
  27. • A plethora of new Procedure commands have been added.  I'm going to 
  28. document them in pretty much the same manner as in the version 10 
  29. manual, so refer to that if you have any questions about the syntax 
  30. descriptions.
  31.  
  32. str_exp = String Expression
  33. str_con = String Constant
  34. str_var = String Variable
  35. num_exp = Numeric Expression
  36. num_con = Numeric Constant
  37. num_var = Numeric Variable
  38. on_or_off_exp = On Or Off Expression
  39. proc_cmd = Procedure Command
  40.  
  41. RECN str_exp
  42. Similar to the RECA command, but it will always destroy an existing file 
  43. by the name contained in "str_exp" before starting the file capture.
  44.  
  45. RECF str_exp
  46. This command is equivalent to choosing "Receive File Using Flash 
  47. Protocol" under the File menu.  The filename to be used as a default is 
  48. contained in "str_exp".
  49.  
  50. SUSPEND on_or_off_exp
  51. "SUSPEND ON" is equivalent to checkmarking "File Capture Pause" under 
  52. the File menu.  "SUSPEND OFF" is equivalent to uncheckmarking "File 
  53. Capture Pause" under the File menu.
  54.  
  55. RECZ str_exp
  56. This command is equivalent to choosing "Receive File Using ZMODEM 
  57. Protocol" under the File menu.  The filename to be used as a default is 
  58. contained in "str_exp".
  59.  
  60. SENDF str_exp
  61. This command is equivalent to choosing "Send File Using Flash Protocol" 
  62. under the File menu.  The file to send is contained in "str_exp".
  63.  
  64. SENDZ str_exp
  65. This command is equivalent to choosing "Send File Using ZMODEM Protocol" 
  66. under the File menu.  The file to send is contained in "str_exp".
  67.  
  68. FILTERT str_exp
  69. FILTERF str_exp
  70. FILTERP str_exp
  71. These commands loads the Filter file specified in "str_exp".  "FILTERT" 
  72. loads the Filter file to the terminal emulation filter.  "FILTERF" loads 
  73. the Filter file to the file capture filter.  "FILTERP" loads the Filter 
  74. file to the file transfer filter.
  75.  
  76. VT102
  77. Switches White Knight to VT102 emulation.
  78.  
  79. INITMODEM
  80. This command is equivalent to choosing "Modem Initialize" under the 
  81. Service menu.
  82.  
  83. HANGUP
  84. This command is equivalent to choosing "Modem Hang Up" under the Service 
  85. menu.
  86.  
  87. AUTOANSWER on_or_off_exp
  88. "AUTOANSWER ON" is equivalent to choosing "Modem Auto-Answer" from under 
  89. the Service menu.  "AUTOANSWER OFF" is equivalent to choosing "Modem 
  90. Turn Off Auto-Answer" from under the Service menu.
  91.  
  92. NEST str_exp
  93. This command is used to execute a second Procedure file from within a 
  94. Procedure file, and then later return to the same point in the first 
  95. Procedure file.  The Procedure file to execute is specified in 
  96. "str_exp".  In this way, separate Procedure files can be called as 
  97. subroutines similar to the way the "GOSUB" and "RETURN" Procedure 
  98. commands work with labels.  Procedures can be nested 6 levels deep, but 
  99. since a Modem Driver is essentially a nested Procedure file that can be 
  100. called at any given moment, you should take care not to nest your 
  101. Procedure files more than 5 levels deep.  Although the Procedure 
  102. Compiler will allow you to, you should never put a "NEST" command in an 
  103. "ALERT" statement, since the return point will be the command following 
  104. the "ALERT" statement, which is probably not what you want.
  105.  
  106. NESTEND
  107. This command is used to return to the calling Procedure file in a file 
  108. executed with a "NEST" command.  If the Procedure file was not executed 
  109. with a "NEST" command, this command functions exactly like the "END" 
  110. command.
  111.  
  112. *
  113. Any line in a Procedure file that begins with the asterisk character is 
  114. treated like a comment (the rest of the characters in the line are 
  115. ignored), but unlike those lines that start with a left parenthesis 
  116. character, these lines will actually be included in the executable 
  117. Procedure file.  These lines are mainly for use with the "TRACE" 
  118. command.
  119.  
  120. TRACE on_or_off_exp
  121. "TRACE ON" turns on special trace mode.  "TRACE OFF" turns off special 
  122. trace mode.  The special trace mode is a bit different than the normal 
  123. trace mode provided by the "Monitor Procedure" menu choice and the 
  124. "LOUD" Procedure command.  Instead of showing each Procedure command as 
  125. it executes, the special trace mode shows the last line in the Procedure 
  126. file encountered which begins with a "*" character.  This can be used as 
  127. an aid in debugging to display messages such as:
  128. "* I'm now in the 'Dial A Number' routine. *"
  129. The special trace mode overrides the normal trace mode.
  130.  
  131. GETRECPATH str_var
  132. This command puts the file transfer file destination pathname into the 
  133. string variable specified in "str_var".  The pathname does not conclude 
  134. with a colon character.  This command is useful for constructing full 
  135. filenames (by concatenating a colon character and then the desired 
  136. filename to this pathname) for use with the "RECX", "RECY", "RECK", 
  137. "RECZ", and "RECF" commands so that the file is saved in the folder 
  138. expected by the user.
  139.  
  140. SETRECPATH str_exp
  141. This command sets the file transfer file destination pathname to the 
  142. pathname specified in "str_exp".  If the path is not valid, the root 
  143. level of the volume containing White Knight will be used.  The pathname 
  144. should not conclude with a colon character.
  145.  
  146. UNIQUE str_var
  147. This command will create a filename based on the current date and time 
  148. and returns it in the string variable specified in "str_var".  To insure 
  149. uniqueness, you should put a "PAUSE 120" command between any two 
  150. "UNIQUE" commands
  151.  
  152. INBUFFER
  153. This command will set the YES/NO flag to YES if there is at least one 
  154. byte in the serial port buffer waiting to be read.  If the serial port 
  155. buffer is empty, the YES/NO flag is set to NO.
  156.  
  157. FETCHBYTE str_var
  158. This command sets the YES/NO flag like the "INBUFFER" command, but if a 
  159. byte is available, one byte is read and is copied (erasing any old 
  160. contents) to the string variable specified in "str_var".
  161.  
  162. BYTEVAL str_var,num_exp,num_var
  163. This command gets the ASCII value of byte number "num_exp" contained in 
  164. "str_var" and places that value in "num_var".  If "num_exp" is larger 
  165. than the actual length of "str_var", the returned value is garbage and 
  166. shouldn't be used.
  167.  
  168. BYTEADD num_exp,str_var
  169. This command concatenates a byte with the ASCII value specified in 
  170. "num_exp" to the end of the string variable specified in "str_var".
  171.  
  172. USEDRIVER str_exp
  173. This command tells White Knight to load and use the Modem Driver file 
  174. specified in "str_exp".
  175.  
  176. WINDOW on_or_off_exp
  177. This command shows (WINDOW ON) or hides (WINDOW OFF) the Macros Window.
  178.  
  179. BUTTON num_exp1,num_exp2,on_or_off_exp1,on_or_off_exp2
  180. This command controls how a Macro Key is displayed in the Macros Status 
  181. Bar and Macros Window.  num_exp1 is the Macro Key Set Number (1, 2, or 
  182. 3) containing the desired key, and num_exp2 is the Macro Key Number (0 
  183. through 9).  on_or_off_exp1 should be "ON" if you want the Macro Key to 
  184. be visible in the Macros Status Bar, or "OFF" if you want it to be 
  185. invisible. on_or_off_exp2 should be "ON" if you want the Macro Key to be 
  186. visible in the Macros Window or "OFF" if you want it to be invisible.
  187.  
  188. REDRAW
  189. The BUTTON command does not redraw either the Macros Status Bar or the 
  190. Macros Window.  This is to provide a "cleaner" display when changing the 
  191. visibility and/or invisibility of groups of Macro Key buttons.  
  192. Therefore, the REDRAW command simply redraws the Macros Status Bar and 
  193. Macros Window.
  194.  
  195. NOBAR on_or_off_exp
  196. The command "NOBAR ON" will hide the Status Bar.  The command "NOBAR 
  197. OFF" will force the Status Bar to be shown.  Notice that hiding the 
  198. Status Bar will also affect the "Monitor Procedure" feature, as well as 
  199. some Procedure commands (notably, QUIET, LOUD, TRACE, and SHOW@).  
  200. However, the Status Bar is required for the Host Mode (so the user can 
  201. exit the Host Mode).  In this case the "Hide Status Bar" menu choice 
  202. will be turned off automatically when Host Mode is entered.
  203.  
  204. SHUTDOWN
  205. Closes White Knight similar to the QUIT command and then executes a 
  206. system Shut Down similar to if you chose "Shut Down" from under Finder's 
  207. "Special" menu.
  208.  
  209. USERPUT% num_exp,num_var
  210. Used to write the contents of a numeric variable to a file opened with 
  211. the USEROPENO or USEROPENA command.  num_exp is the path number (1 or 2) 
  212. that was specified in the USEROPENO or USEROPENA command and num_var is 
  213. the numeric variable to write to that file.  Variables written with a 
  214. USERPUT% command _MUST_ be read back in with a USERGET% command!
  215.  
  216. USERGET% num_exp,num_var
  217. Used to read a value into a numeric variable that was previously written 
  218. with a USERPUT% command from a file opened with a USEROPENI command.  
  219. num_exp contains the path number (1 or 2) specified in the USEROPENI 
  220. command, and num_var is the numeric variable to read the value into.  
  221. USERGET% should only be used to read in data that was saved with a 
  222. USERPUT% command.
  223.  
  224. USERPUT$ num_exp,str_var
  225. Used to write the contents of a string variable to a file opened with 
  226. the USEROPENO or USEROPENA command.  num_exp is the path number (1 or 2) 
  227. that was specified in the USEROPENO or USEROPENA command and str_var is 
  228. the string variable to write to that file.  Variables written with a 
  229. USERPUT$ command _MUST_ be read back in with a USERGET$ command!
  230.  
  231. USERGET$ num_exp,str_var
  232. Used to read a string of characters into a string variable that was 
  233. previously written with a USERPUT$ command from a file opened with a 
  234. USEROPENI command.  num_exp contains the path number (1 or 2) specified 
  235. in the USEROPENI command, and str_var is the string variable to read the 
  236. data into.  USERGET$ should only be used to read in data that was saved 
  237. with a USERPUT$ command.
  238.  
  239. The next group of Procedure commands deals with a new part of the White 
  240. Knight interface, the User Window.  Often times, it is desirable to hide 
  241. what's happening in the terminal window (via a "SCREEN OFF" Procedure 
  242. command) from the neophyte user, yet provide some sort of feedback that 
  243. progress is being made.  As you know, the various "QUERY" command dialog 
  244. boxes as well as "SHELL" command dialog boxes are all modal, which means 
  245. that all action behind the dialog box stops until the dialog box has 
  246. been clicked closed by the user.
  247.  
  248. The User Window is modeless, which means it will stay around until you 
  249. specifically get rid of it.  Additionally, it is updated automatically 
  250. when other windows overlap it and it does not affect the continued 
  251. execution of your Procedure file.  Finally, you can even control the 
  252. size and location of the User Window on the display screen.
  253.  
  254. UWOPEN0 num_exp1,num_exp2,num_exp3,num_exp4
  255. CUWOPEN0 num_exp1,num_exp2,num_exp3,num_exp4
  256. These commands use a dragable window with a title bar, but no go-away 
  257. box.  For both commands, num_exp1 is the top coordinate, num_exp2 is the 
  258. left coordinate, num_exp3 is the bottom coordinate, and num_exp4 is the 
  259. right coordinate of the window.  "UWOPEN0" uses these coordinates 
  260. exactly to size and position the window, so they should be given in 
  261. global screen coordinates.  "CUWOPEN0" uses the coordinates in a 
  262. relative manner to size the window, the actual postion of the window is 
  263. centered on the screen.  The window title is passed in the string 
  264. variable W$.  The text to appear in the window is passed in X$, Y$, and 
  265. Z$.  These strings are jammed right up against each other, so you'll 
  266. want to take care to include necessary spacing.  You can pass up to 132 
  267. characters in each string variable (taking care that the window size is 
  268. large enough to display all of the characters).
  269.  
  270. UWOPEN1 num_exp1,num_exp2,num_exp3,num_exp4
  271. CUWOPEN1 num_exp1,num_exp2,num_exp3,numexp4
  272. These commands are similar to "UWOPEN0" and "CUWOPEN1" (respectively), 
  273. except they produce a non-dragable window without a title bar and no 
  274. go-away box.  Therefore, W$ is not used by these commands.
  275.  
  276. UWOPEN2 num_exp1,num_exp2,num_exp3,num_exp4
  277. CUWOPEN2 num_exp1,num_exp2,num_exp3,num_exp4
  278. These commands are similar to "UWOPEN0" and "CUWOPEN1" (respectively), 
  279. except they include a go-away box in the title bar.
  280.  
  281. IF CLOSEUW proc_cmd
  282. This command is used with dialog boxes created with "UWOPEN2" and 
  283. "CUWOPEN2" to monitor whether or not the user has clicked in the go-away 
  284. box.  When the user does this, the window is not closed, it's up to you 
  285. to do this explicitly.  If the go-away box has been clicked in before 
  286. this command has been executed, the Procedure command "proc_cmd" is 
  287. executed.  Otherwise, this command does nothing.
  288.  
  289. UWCLOSE
  290. This command removes the User Window created by any of the "UWOPEN" and 
  291. "CUWOPEN" commands.  Please note that you can have only one User Window 
  292. open at any time.  If the User Window is not open when this command is 
  293. executed, it does nothing.  Please note that an open User Window will 
  294. survive even after a Procedure has ended or has been cancelled unless it 
  295. is explicitly closed using this command.  Therefore, if you want to give 
  296. the user the ability to abort the Procedure cleanly, you should use a 
  297. "UWOPEN2" or "CUWOPEN2", and when a click in the go-away box is 
  298. detected, branch to a closing routine.
  299.  
  300. UWUPDATE
  301. If you want to change the contents of an open User Window, this command 
  302. is used to redisplay the text passed in the string variables X$, Y$, and 
  303. Z$. For User Windows created with "UWOPEN0", "CUWOPEN0", "UWOPEN2", and 
  304. "CUWOPEN2", it will also set the window title to the string passed in W$ 
  305. (if the window has a title bar).
  306.  
  307. TOP num_var
  308. This command is useful when used before a "UWOPEN0", "UWOPEN1", or 
  309. "UWOPEN2" command.  It returns the vertical global coordinate in the 
  310. numeric variable "num_var" of the bottom of the menu bar (which can be a 
  311. different size on different machines - don't take it for granted).  To 
  312. fit your window flush below the menu bar, you would add 19 to the number 
  313. returned by this command for "UWOPEN0" and "UWOPEN2" commands or add 8 
  314. to the number returned by this command for "UWOPEN1" commands.
  315.  
  316. There are a variety of new Procedure commands that deal only with RCMD 
  317. modules (discussed later) and Modem Drivers.  These will be documented 
  318. elsewhere.
  319.  
  320. RCMD Modules
  321. An RCMD Module is a CODE resource that allows White Knight to be 
  322. extended beyond its basic capabilities.  Although RCMD's must be written 
  323. by software developers (and not beginners), they can be used by anyone.  
  324. Since the RCMD has access to a large number of White Knight's private 
  325. data, it can add a degree of intelligence and aesthetics not possible 
  326. through White Knight 11's Procedure language.
  327.  
  328. The possibilities with RCMD's seem endless, in only the short time that 
  329. I've taken to explore possible applications of them.  For instance, it's 
  330. possible to write (and one probably will be) an RCMD that can interface 
  331. to HyperCard's XFNC's and XCMD's!  There will be a number of sample 
  332. RCMD's distributed with White Knight 11.  Some, like AddLF, are useful 
  333. but sublime.  Other's, like ProcEdit, have a high degree of 
  334. sophistication and usefulness.  My goal was to explore a lot of 
  335. different avenues with these samples, and I'm sure they'll whet the 
  336. appetites of other developers as they have mine.  The samples include:
  337.  
  338. • AddLF - This module will add linefeeds after every carriage return in 
  339. a text file.  Useful if you'll be sending a file with a protocol to a 
  340. machine that requires linefeeds after carriage returns (example: IBM-
  341. PC).
  342.  
  343. • FastDump - Replaces the FASTDUMP Procedure command in Red Ryder 10.3
  344.  
  345. • FolderBatch - This module prompts you to select a folder and then it 
  346. creates a Batch File (for sending with a protocol) containing the names 
  347. of every file in that folder.
  348.  
  349. • SetFile - This module allows you to view and/or edit all of the Finder 
  350. information (type, creator, and flags) for a specified file.
  351.  
  352. • Speak - This module allows you to interface with Macintalk in your 
  353. Procedures.
  354.  
  355. • TabFile - This module performs on a file what the "Copy Table" menu 
  356. choices does to selected text in the Terminal Window.
  357.  
  358. • QuickB - This module implements CompuServe's CIS-B and QuickB file 
  359. transfer protocols (for both sending and receiving) with the same File 
  360. Transfer Window White Knight 11 uses for its built-in protocols.
  361.  
  362. • ProcEdit - This module is a point-and-click Procedure Editor, somewhat 
  363. similar to MicroPhone's or SmartComm II's script editors.  Though meant 
  364. for beginners, it can be very useful for anyone.  It interfaces nicely 
  365. with White Knight 11, in that ProcEdit can direct a file to White Knight 
  366. to compile.  If an error occurs during compilation, White Knight will 
  367. branch back to ProcEdit, which will load that file and scroll to the 
  368. line containing the error for immediate correction.  ProcEdit implements 
  369. its own menus, and even supports desk accessories and background 
  370. operation under MultiFinder.
  371.  
  372. • Others - I have written several others that aren't appropriate for 
  373. mass distribution (they require more than beginner's skill to utilize), 
  374. and several of the beta testers have benn working on others.  The one's 
  375. that I do will be available through the FreeSoft RoundTable on GEnie and 
  376. through the mail in something I'm putting together called the "White 
  377. Knight Developer's Toolkit", which will also contain the information on 
  378. how to write RCMD's, Modem Drivers, and SHELL resources.  More details 
  379. about this will be in the White Knight manual.  My guess is that you'll 
  380. see literally dozens of these useful gizmos floating around in short 
  381. fashion.
  382.  
  383. The Surprise
  384. ------------
  385. The very fact that this "new features" list is running over 40K long 
  386. should testify to the amount  of work that went into this new version.
  387. However, it is still my feeling that this update is long overdue.
  388.  
  389. Some time back, I took advantage of my medical insurance and the
  390. intensive care facilities of the local hospital to receive a donation of
  391. four pints of blood after losing same to a rather large and pernicious
  392. hole in my gut.  This little sidetrack caused me to lose over three
  393. months of development time on White Knight 11.  Close to an additional
  394. month was lost coming up with the new name and playing games with the
  395. lawyers.  All in all, it's been a hell of an uphill fight to get this
  396. thing out the door.
  397.  
  398. To thank my existing customers for their patience and continuing 
  399. support, and as an incentive to new customers, I've decided to include 
  400. at no extra cost a copy of my new product Okyto for a limited time.  
  401. This will be included in all updates and all new orders at least until 
  402. the end of 1989 (after that, who knows?).
  403.  
  404. I've been told by several people that this thing could easily sell for 
  405. anywhere from $60 to $100, and that I'm nuts for doing this.  But that 
  406. fits in well with my self-image, so what the heck.
  407.  
  408. As for what it does and whether it will be useful to you.  Well, that's 
  409. the surprise, you see.  I'm not talking.
  410.